class NewSyringeAltFire extends SyringeAltFire;

Function Timer()
{
	local float HealSum;

	HealSum = Syringe(Weapon).HealBoostAmount;
	
	SRHumanPawn(Instigator).ConsumeStamina(0.072);

	if ( KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo) != none && KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).ClientVeteranSkill != none )
	{
		HealSum *= ( -1.0 + KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).ClientVeteranSkill.Static.GetHealPotency(KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo))
					+ class<SRVeterancy>(KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).ClientVeteranSkill).Static.GetSelfHealPotency(KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo)) );
		if( KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).PlayerHealth + HealSum < class<SRVeterancy>(KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).ClientVeteranSkill).Static.GetSyringeMinimumSelfHealHPLevel(KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo)) )
			HealSum = class<SRVeterancy>(KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).ClientVeteranSkill).Static.GetSyringeMinimumSelfHealHPLevel(KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo)) - KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).PlayerHealth;
	}
    Weapon.ConsumeAmmo(ThisModeNum, AmmoPerFire);
	SRHumanPawn(Instigator).TakeHealing(Instigator.Controller, 0, HealSum, 1.00);
}

event ModeDoFire()
{
	local float Rec;

	Rec = GetFireSpeed();
	FireRate = default.FireRate/Rec;
	FireAnimRate = default.FireAnimRate*Rec;
	ReloadAnimRate = default.ReloadAnimRate*Rec;
	Load = 0;
	Super(WeaponFire).ModeDoFire(); // We don't consume the ammo just yet.	
}

function float GetFireSpeed()
{
	local SRPlayerReplicationInfo SRPRI;
	
	SRPRI = SRPlayerReplicationInfo(Instigator.PlayerReplicationInfo);
	
	return class<SRVeterancy>(SRPRI.ClientVeteranSkill).Static.GetFireModeSpeed(SRPRI,Self.Class);
}

defaultproperties
{
}
